<html>
<head>

<title>Groovy Goodness</title>

<link href="styles/reset.css" rel="stylesheet" type="text/css" />
<link href="styles/shCore.css" rel="stylesheet" type="text/css" />
<link type="text/css" rel="Stylesheet" href="styles/shBlackWhite.css"/>
<link href="styles/blog.css" rel="stylesheet" type="text/css" />

</head>
<body class="toc">

<div class="titlewrapper">
	<h1 class="title">Groovy Goodness</h1>
	<h2 class="description">assert 'mrhaki' == ['Hubert','Alexander','Klein','Ikkink'].inject('mr') { c,n -&gt; c += n[0].toLowerCase() }</h2>
</div>

<div class="toc">
    <ul>
	
	    <li><a href="groovy-goodness-share-data-in.html">Groovy Goodness: Share Data in Concurrent Environment with Dataflow Variables</a></li>
	
	    <li><a href="groovy-goodness-use-closures-as-java.html">Groovy Goodness: Use Closures as Java Lambda Expressions</a></li>
	
	    <li><a href="groovy-goodness-new-methods-to-sort-and.html">Groovy Goodness: New Methods to Sort and Remove Duplicates From Collection</a></li>
	
	    <li><a href="groovy-goodness-combine-elements.html">Groovy Goodness: Combine Elements Iterable with Index</a></li>
	
	    <li><a href="groovy-goodness-swapping-elements-in.html">Groovy Goodness: Swapping Elements in a Collection</a></li>
	
	    <li><a href="groovy-goodness-use-constructor-as.html">Groovy Goodness: Use Constructor as Method Pointer</a></li>
	
	    <li><a href="groovy-goodness-access-xml-rpc-api.html">Groovy  Goodness: Access XML-RPC API</a></li>
	
	    <li><a href="groovy-goodness-getting-indices-of.html">Groovy Goodness: Getting the Indices of a Collection</a></li>
	
	    <li><a href="groovy-goodness-pop-and-push-items-in.html">Groovy Goodness: Pop And Push Items In a List</a></li>
	
	    <li><a href="groovy-goodness-getting-all-but-last.html">Groovy Goodness: Getting All But the Last Element in a Collection with Init Method</a></li>
	
	    <li><a href="groovy-goodness-take-or-drop-last-items.html">Groovy Goodness: Take Or Drop Last Items From a Collection</a></li>
	
	    <li><a href="groovy-goodness-closure-as-class.html">Groovy Goodness: Closure as a Class</a></li>
	
	    <li><a href="groovy-goodness-using-layouts-with.html">Groovy Goodness: Using Layouts with MarkupTemplateEngine</a></li>
	
	    <li><a href="groovy-goodness-nested-templates-with.html">Groovy Goodness: Nested Templates with MarkupTemplateEngine</a></li>
	
	    <li><a href="groovy-goodness-use-custom-template.html">Groovy Goodness: Use Custom Template Class with MarkupTemplateEngine</a></li>
	
	    <li><a href="groovy-goodness-relax-groovy-will-parse.html">Groovy Goodness: Relax... Groovy Will Parse Your Wicked JSON</a></li>
	
	    <li><a href="groovy-goodness-implementing-traits-at.html">Groovy Goodness: Implementing Traits at Runtime</a></li>
	
	    <li><a href="groovy-goodness-chaining-traits.html">Groovy Goodness: Chaining Traits</a></li>
	
	    <li><a href="groovy-goodness-check-configuration.html">Groovy Goodness: Check Configuration Property Is Set In ConfigObject</a></li>
	
	    <li><a href="groovy-goodness-extend-configslurper.html">Groovy Goodness: Extend ConfigSlurper with Custom Environments Sections</a></li>
	
	    <li><a href="groovy-goodness-use-sortable-annotation.html">Groovy Goodness: Use Sortable Annotation to Make Classes Comparable</a></li>
	
	    <li><a href="groovy-goodness-basescript-with.html">Groovy Goodness: BaseScript with Abstract Run Script Method</a></li>
	
	    <li><a href="groovy-goodness-builder-definition-with.html">Groovy Goodness: @Builder Definition with Extra Type Checks</a></li>
	
	    <li><a href="groovy-goodness-using-builder-to-create.html">Groovy Goodness: Using Builder to Create Fluent API for Other Classes</a></li>
	
	    <li><a href="groovy-goodness-use-builder-ast.html">Groovy Goodness: Use Builder AST Transformation for Fluent API</a></li>
	
	    <li><a href="groovy-goodness-extra-methods-for-nio.html">Groovy Goodness: Extra Methods for NIO Path</a></li>
	
	    <li><a href="groovy-goodness-more-efficient-tail.html">Groovy Goodness: More Efficient Tail Recursion With TailRecursive Annotation</a></li>
	
	    <li><a href="groovy-goodness-customize-tostring.html">Groovy Goodness: Customize ToString Creation</a></li>
	
	    <li><a href="groovy-goodness-define-compilation.html">Groovy Goodness: Define Compilation Customizers With Builder Syntax</a></li>
	
	    <li><a href="groovy-goodness-restricting-script.html">Groovy Goodness: Restricting Script Syntax With SecureASTCustomizer</a></li>
	
	    <li><a href="groovy-goodness-closure-as-writable.html">Groovy Goodness: Closure as Writable</a></li>
	
	    <li><a href="groovy-goodness-gstring-as-writable.html">Groovy Goodness: GString as Writable</a></li>
	
	    <li><a href="groovy-goodness-converting-byte-array.html">Groovy Goodness: Converting Byte Array to Hex String</a></li>
	
	    <li><a href="groovy-goodness-using-package-scoped.html">Groovy Goodness: Using Package Scoped Methods, Fields and Classes</a></li>
	
	    <li><a href="groovy-goodness-notebook-updated-with.html">Groovy Goodness Notebook Updated with New Groovy 2.2 Features</a></li>
	
	    <li><a href="groovy-goodness-enhancements-for.html">Groovy Goodness: Enhancements for Iterable Implementations</a></li>
	
	    <li><a href="groovy-goodness-set-delegating-class.html">Groovy Goodness: Set Delegating Class for Script</a></li>
	
	    <li><a href="groovy-goodness-set-script-class-with.html">Groovy Goodness: Set Script Class with BaseScript Annotation</a></li>
	
	    <li><a href="groovy-goodness-cache-methods.html">Groovy Goodness: Cache Methods Invocations with Memoize Annotation</a></li>
	
	    <li><a href="groovy-goodness-implicit-closure.html">Groovy Goodness: Implicit Closure Coercion</a></li>
	
	    <li><a href="groovy-goodness-create-copywith-method.html">Groovy Goodness: Create CopyWith Method with Immutable Annotation </a></li>
	
	    <li><a href="groovy-goodness-choose-which-delegated.html">Groovy Goodness: Choose Which Delegated Methods to Use</a></li>
	
	    <li><a href="groovy-goodness-create-new-date-or.html">Groovy Goodness: Create New Date or Calendar from Existing and Set Property Value</a></li>
	
	    <li><a href="groovy-goodness-loop-through-date-and.html">Groovy Goodness: Loop Through Date and Calendar Ranges</a></li>
	
	    <li><a href="groovy-goodness-remove-part-of-string.html">Groovy Goodness: Remove Part of String With Regular Expression Pattern</a></li>
	
	    <li><a href="groovy-goodness-running-scripts-from.html">Groovy Goodness: Running Scripts from a JAR Archive</a></li>
	
	    <li><a href="groovy-goodness-check-if-string-only.html">Groovy Goodness: Check if a String Only Contains Whitespaces</a></li>
	
	    <li><a href="groovy-goodness-replace-characters-in.html">Groovy Goodness: Replace Characters in a String with CollectReplacements</a></li>
	
	    <li><a href="groovy-goodness-notebook-is-published.html">Groovy Goodness Notebook is Published</a></li>
	
	    <li><a href="groovy-goodness-customize-log-variable.html">Groovy Goodness: Customize Log Variable Name with Log AST Annotations</a></li>
	
	    <li><a href="groovy-goodness-delegatesto-for-type.html">Groovy Goodness: @DelegatesTo For Type Checking DSL</a></li>
	
	    <li><a href="groovy-goodness-combining-annotations.html">Groovy Goodness: Combining Annotations with AnnotationCollector</a></li>
	
	    <li><a href="groovy-goodness-apply-mixin-to-object.html">Groovy Goodness: Apply Mixin to Object Instances</a></li>
	
	    <li><a href="groovy-goodness-adding-extra-methods.html">Groovy Goodness: Adding Extra Methods Using Extension Modules</a></li>
	
	    <li><a href="groovy-goodness-append-values-to.html">Groovy Goodness: Append Values to Appendable Objects</a></li>
	
	    <li><a href="groovy-goodness-calculating-directory.html">Groovy Goodness: Calculating Directory Size</a></li>
	
	    <li><a href="groovy-goodness-pretty-print-xml.html">Groovy Goodness: Pretty Print XML</a></li>
	
	    <li><a href="groovy-goodness-create-list-with.html">Groovy Goodness: Create a List with Default Values</a></li>
	
	    <li><a href="groovy-goodness-getting-first-and-last.html">Groovy Goodness: Getting the First and Last Element of an Iterable</a></li>
	
	    <li><a href="groovy-goodness-using-groovy-for-git.html">Groovy Goodness: Using Groovy for Git Hooks</a></li>
	
	    <li><a href="groovy-goodness-using-project-coin.html">Groovy Goodness: Using Project Coin Features Also With Older Java Versions</a></li>
	
	    <li><a href="groovy-goodness-return-closure-from.html">Groovy Goodness: Return Closure From Another Closure or Method</a></li>
	
	    <li><a href="groovy-goodness-drop-or-take-elements.html">Groovy Goodness: Drop or Take Elements with Condition</a></li>
	
	    <li><a href="groovy-goodness-using-implicit-call.html">Groovy Goodness: Using Implicit call() Method</a></li>
	
	    <li><a href="groovy-goodness-boolean-implications.html">Groovy Goodness: Boolean Implications</a></li>
	
	    <li><a href="groovy-goodness-partial-matches.html">Groovy Goodness: Partial Matches</a></li>
	
	    <li><a href="groovy-goodness-multiple-overloaded.html">Groovy Goodness: Multiple Overloaded Operator Methods for Nice API</a></li>
	
	    <li><a href="groovy-goodness-revisited-getting-sum.html">Groovy Goodness: Revisited Getting the Sum of Items in a Collection</a></li>
	
	    <li><a href="groovy-goodness-collate-list-into-sub.html">Groovy Goodness: Collate a List into Sub-lists</a></li>
	
	    <li><a href="groovy-goodness-solve-naming-conflicts.html">Groovy Goodness: Solve Naming Conflicts with Builders</a></li>
	
	    <li><a href="groovy-goodness-magic-package-to-add.html">Groovy Goodness: Magic Package to Add Custom MetaClass</a></li>
	
	    <li><a href="groovy-goodness-create-simple-builders.html">Groovy Goodness: Create Simple Builders with Closures</a></li>
	
	    <li><a href="groovy-goodness-create-our-own-script.html">Groovy Goodness: Create Our Own Script Class</a></li>
	
	    <li><a href="groovy-goodness-parse-datetostring.html">Groovy Goodness: Parse Date.toString() Value</a></li>
	
	    <li><a href="groovy-goodness-find-non-null-results.html">Groovy Goodness: Find Non-Null Results After Transformation in a Collection</a></li>
	
	    <li><a href="groovy-goodness-customize-groovy.html">Groovy Goodness: Customize Groovy Console Visual Output</a></li>
	
	    <li><a href="groovy-goodness-format-dates-with.html">Groovy Goodness: Format Dates with TimeZone</a></li>
	
	    <li><a href="groovy-goodness-default-groovy-script.html">Groovy Goodness: Default Groovy Script File Extensions</a></li>
	
	    <li><a href="groovy-goodness-run-remote-scripts-via.html">Groovy Goodness: Run Remote Scripts via URL</a></li>
	
	    <li><a href="groovy-goodness-use-inject-method-on.html">Groovy Goodness: Use inject Method on a Map</a></li>
	
	    <li><a href="groovy-goodness-access.html">Groovy Goodness: Access ResultSetMetaData with Groovy SQL</a></li>
	
	    <li><a href="groovy-goodness-using-named-ordinal.html">Groovy Goodness: Using Named (Ordinal) Parameters with Groovy SQL</a></li>
	
	    <li><a href="groovy-goodness-use-connection.html">Groovy Goodness: Use Connection Parameters to Get Text From URL</a></li>
	
	    <li><a href="groovy-goodness-streaming-json-with.html">Groovy Goodness: Streaming JSON with StreamingJsonBuilder</a></li>
	
	    <li><a href="groovy-goodness-transform-items-into.html">Groovy Goodness: Transform Items into a Collection with collectMany</a></li>
	
	    <li><a href="groovy-goodness-collect-on-nested.html">Groovy Goodness: Collect on Nested Collections</a></li>
	
	    <li><a href="groovy-goodness-groupby-with-multiple.html">Groovy Goodness: GroupBy with Multiple Closures</a></li>
	
	    <li><a href="groovy-goodness-sort-or-remove.html">Groovy Goodness: Sort or Remove Duplicates without Changing the Original Collection</a></li>
	
	    <li><a href="groovy-goodness-take-and-drop-items.html">Groovy Goodness: Take and Drop Items from a List</a></li>
	
	    <li><a href="groovy-goodness-find-elements-matching.html">Groovy Goodness: Find Elements Matching Groovy Truth</a></li>
	
	    <li><a href="groovy-goodness-transform-collection-to.html">Groovy Goodness: Transform Collection to a Map with collectEntries</a></li>
	
	    <li><a href="groovy-goodness-add-asttransformations.html">Groovy Goodness: Add AST Transformations Transparently to Scripts</a></li>
	
	    <li><a href="groovy-goodness-add-imports.html">Groovy Goodness: Add Imports Transparently to Scripts with ImportCustomizer</a></li>
	
	    <li><a href="groovy-goodness-transforming-reader.html">Groovy Goodness: Transforming Reader Input to Writer Output</a></li>
	
	    <li><a href="groovy-goodness-apply-read-and-write.html">Groovy Goodness: Apply Read and Write Locking</a></li>
	
	    <li><a href="groovy-goodness-command-chain.html">Groovy Goodness: Command Chain Expressions for Fluid DSLs</a></li>
	
	    <li><a href="groovy-goodness-change-xml-structure.html">Groovy Goodness: Change XML Structure</a></li>
	
	    <li><a href="groovy-goodness-add-java-style-listener.html">Groovy Goodness: Add Java-style Listener Support with ListenerList Annotation</a></li>
	
	    <li><a href="groovy-goodness-canonical-annotation-to.html">Groovy Goodness: Canonical Annotation to Create Mutable Class</a></li>
	
	    <li><a href="groovy-goodness-paging-support-in.html">Groovy Goodness: Paging Support in Groovy SQL</a></li>
	
	    <li><a href="groovy-goodness-cache-closure-results.html">Groovy Goodness: Cache Closure Results with Memoization</a></li>
	
	    <li><a href="groovy-goodness-recursion-with-closure.html">Groovy Goodness:  Recursion with Closure Trampoline Capability</a></li>
	
	    <li><a href="groovy-goodness-new-dollar-slashy.html">Groovy Goodness: New Dollar Slashy Strings</a></li>
	
	    <li><a href="groovy-goodness-chain-closures-together.html">Groovy Goodness: Chain Closures Together with Closure Composition</a></li>
	
	    <li><a href="groovy-goodness-see-if-sets-are-equal.html">Groovy Goodness: See if Sets are Equal</a></li>
	
	    <li><a href="groovy-goodness-add-items-to-list-at.html">Groovy Goodness: Add Items to a List at Specified Position</a></li>
	
	    <li><a href="groovy-goodness-convert-collection-to.html">Groovy Goodness: Convert Collection to Set with Only Unique Elements</a></li>
	
	    <li><a href="groovy-goodness-get-unique-characters.html">Groovy Goodness: Get Unique Characters in a String</a></li>
	
	    <li><a href="groovy-goodness-generate-equals-and.html">Groovy Goodness: Generate equals and hashcode Methods with EqualsAndHashCode Annotation</a></li>
	
	    <li><a href="groovy-goodness-tuple-constructor.html">Groovy Goodness: Tuple Constructor Creation</a></li>
	
	    <li><a href="groovy-goodness-change-scope-script.html">Groovy Goodness: Change Scope Script Variable with Field Annotation</a></li>
	
	    <li><a href="groovy-goodness-group-and-count.html">Groovy Goodness: Group and Count Elements in Collection or Map</a></li>
	
	    <li><a href="groovy-goodness-count-occurrences-in.html">Groovy Goodness: Count Occurrences in a Collection or Map</a></li>
	
	    <li><a href="groovy-goodness-easy-tostring-creation.html">Groovy Goodness: Easy toString Creation for Our Classes</a></li>
	
	    <li><a href="groovy-goodness-check-if-maps-are-equal.html">Groovy Goodness: Check if Maps are Equal</a></li>
	
	    <li><a href="groovy-goodness-inject-logging-using.html">Groovy Goodness: Inject Logging Using Annotations</a></li>
	
	    <li><a href="groovy-goodness-build-json-with.html">Groovy Goodness: Build JSON with JsonBuilder and Pretty Print JSON Text</a></li>
	
	    <li><a href="groovy-goodness-parse-json-with.html">Groovy Goodness: Parse JSON with JsonSlurper</a></li>
	
	    <li><a href="groovy-goodness-see-if-list-and-object.html">Groovy Goodness: See if List and Object Array are Equal</a></li>
	
	    <li><a href="groovy-goodness-create-gmetrics-report.html">Groovy Goodness: Create GMetrics Report with XSLT</a></li>
	
	    <li><a href="groovy-goodness-create-codenarc-reports.html">Groovy Goodness: Create CodeNarc Reports with XSLT</a></li>
	
	    <li><a href="groovy-goodness-transform-string-into.html">Groovy Goodness: Transform String into Enum</a></li>
	
	    <li><a href="groovy-goodness-determine-min-and-max.html">Groovy Goodness: Determine Min and Max Entries in a Map</a></li>
	
	    <li><a href="groovy-goodness-use-map-in-switch.html">Groovy Goodness: Use Map in Switch Statement</a></li>
	
	    <li><a href="groovy-goodness-convert-date-to.html">Groovy Goodness: Convert Date to Calendar</a></li>
	
	    <li><a href="groovy-goodness-find-first-non-null.html">Groovy Goodness: Find First Non-Null Result From a Closure</a></li>
	
	    <li><a href="groovy-goodness-invoke-anonymous.html">Groovy Goodness: Invoke Anonymous Closure</a></li>
	
	    <li><a href="groovy-goodness-string-continuation.html">Groovy Goodness: String Continuation</a></li>
	
	    <li><a href="groovy-goodness-use-groovyws-to-access_15.html">Groovy Goodness: Use GroovyWS to Access SOAP Web Services (Part 3)</a></li>
	
	    <li><a href="groovy-goodness-use-groovyws-to-access_14.html">Groovy Goodness: Use GroovyWS to Access SOAP Web Services (Part 2)</a></li>
	
	    <li><a href="groovy-goodness-use-groovyws-to-access.html">Groovy Goodness: Use GroovyWS to Access SOAP Web Services</a></li>
	
	    <li><a href="groovy-goodness-convert-date-to.html">Groovy Goodness: Convert Date to java.sql.Timestamp</a></li>
	
	    <li><a href="groovy-goodness-store-closures-in.html">Groovy Goodness: Store Closures in Script Binding</a></li>
	
	    <li><a href="groovy-goodness-resolve-module-location.html">Groovy Goodness: Resolve Module Location with Grape</a></li>
	
	    <li><a href="groovy-goodness-proces-map-entries-in.html">Groovy Goodness: Process Map Entries in Reverse</a></li>
	
	    <li><a href="groovy-goodness-subtracting-map-entries.html">Groovy Goodness: Subtracting Map Entries</a></li>
	
	    <li><a href="groovy-goodness-simple-file-renaming.html">Groovy Goodness: Simple File Renaming</a></li>
	
	    <li><a href="groovy-goodness-groovy-truth-for-simple.html">Groovy Goodness: Groovy Truth for Simple Type Arrays</a></li>
	
	    <li><a href="groovy-goodness-intersect-maps.html">Groovy Goodness: Intersect Maps</a></li>
	
	    <li><a href="groovy-goodness-use-class-by-proxy.html">Groovy Goodness: Use a Class by Proxy</a></li>
	
	    <li><a href="groovy-goodness-create-indexed-property.html">Groovy Goodness: Create Indexed Property Getter and Setter Methods</a></li>
	
	    <li><a href="groovy-goodness-map-with-default-values.html">Groovy Goodness: Map with Default Values</a></li>
	
	    <li><a href="groovy-goodness-get-to-know-more-about.html">Groovy Goodness: Get to Know More About a GString</a></li>
	
	    <li><a href="groovy-goodness-clear-time-portion-of.html">Groovy Goodness: Clear Time Portion of a Date</a></li>
	
	    <li><a href="groovy-goodness-synchronized-annotation.html">Groovy Goodness: Synchronized Annotation for Synchronizing Methods</a></li>
	
	    <li><a href="groovy-goodness-strip-leading-spaces_20.html">Groovy Goodness: Strip Leading Spaces from Lines with Margin</a></li>
	
	    <li><a href="groovy-goodness-text-translation.html">Groovy Goodness: Text Translation</a></li>
	
	    <li><a href="groovy-goodness-represent-list-as.html">Groovy Goodness: Represent a List as String</a></li>
	
	    <li><a href="groovy-goodness-getting-head-and-tail.html">Groovy Goodness: Getting Head And Tail From an Array of Objects</a></li>
	
	    <li><a href="groovy-goodness-inherit-constructors.html">Groovy Goodness: Inherit Constructors From Parent Classes</a></li>
	
	    <li><a href="groovy-goodness-create-new-date-from.html">Groovy Goodness: Create New Date from Old Date with Updates</a></li>
	
	    <li><a href="groovy-goodness-use-set-method-to.html">Groovy Goodness: Use the set Method to Define a Date or Calendar Value</a></li>
	
	    <li><a href="groovy-goodness-setting-date-and.html">Groovy Goodness: Setting Date and Calendar Values with Subscript Operators</a></li>
	
	    <li><a href="groovy-goodness-strip-leading-spaces.html">Groovy Goodness: Strip Leading Spaces from Lines</a></li>
	
	    <li><a href="groovy-goodness-expand-or-unexpand.html">Groovy Goodness: Expand or Unexpand Space or Tab Delimited Text</a></li>
	
	    <li><a href="groovy-goodness-capitalize-strings.html">Groovy Goodness: Capitalize Strings</a></li>
	
	    <li><a href="groovy-goodness-get-hints-about-missing.html">Groovy Goodness: Get Hints About Missing Methods or Properties</a></li>
	
	    <li><a href="groovy-goodness-create-class-instance.html">Groovy Goodness: Create Class Instance Dynamically</a></li>
	
	    <li><a href="groovy-goodness-use-grabresolver-for.html">Groovy Goodness: Use GrabResolver for Custom Repositories</a></li>
	
	    <li><a href="groovy-goodness-use-collect-with.html">Groovy Goodness: Use Collect with Initial Collection Value</a></li>
	
	    <li><a href="groovy-goodness-multiple-assignments.html">Groovy Goodness: Multiple Assignments Revisited</a></li>
	
	    <li><a href="groovy-goodness-using-subscript.html">Groovy Goodness: Using the Subscript Operator on Iterators</a></li>
	
	    <li><a href="groovy-goodness-traversing-directory.html">Groovy Goodness: Traversing a Directory</a></li>
	
	    <li><a href="groovy-goodness-working-on-files-or.html">Groovy Goodness: Working on Files or Directories (or Both) with FileType</a></li>
	
	    <li><a href="groovy-goodness-refactor-xml-creation.html">Groovy Goodness: Refactor XML Creation with StreamingMarkupBuilder</a></li>
	
	    <li><a href="groovy-goodness-sum-values-in-object.html">Groovy Goodness: Sum the Values in a Object Array</a></li>
	
	    <li><a href="groovy-goodness-tokenize-string.html">Groovy Goodness: Tokenize a String</a></li>
	
	    <li><a href="groovy-goodness-see-if-string-is-number.html">Groovy Goodness: See if String is a Number</a></li>
	
	    <li><a href="groovy-goodness-adding-maps-to-map_21.html">Groovy Goodness: Adding Maps to Map</a></li>
	
	    <li><a href="groovy-goodness-sorting-map.html">Groovy Goodness: Sorting a Map</a></li>
	
	    <li><a href="groovy-goodness-new-ways-to-curry.html">Groovy Goodness: New Ways to Curry</a></li>
	
	    <li><a href="groovy-goodness-configuring-grape-to.html">Groovy Goodness: Configuring Grape to Use Classloader</a></li>
	
	    <li><a href="groovy-goodness-use-keywords-as-method.html">Groovy Goodness: Use Keywords as Method Names</a></li>
	
	    <li><a href="groovy-goodness-use-strings-as.html">Groovy Goodness: Use Strings as Subscript Operator</a></li>
	
	    <li><a href="groovy-goodness-use-ranges-as-subscript.html">Groovy Goodness: Use Ranges as Subscript Operators</a></li>
	
	    <li><a href="groovy-goodness-intersect-collections.html">Groovy Goodness: Intersect Collections</a></li>
	
	    <li><a href="groovy-goodness-invoke-methods.html">Groovy Goodness: Invoke Methods Dynamically</a></li>
	
	    <li><a href="groovy-goodness-create-stubs-for.html">Groovy Goodness: Create Stubs for Testing</a></li>
	
	    <li><a href="groovy-goodness-round-and-truncate.html">Groovy Goodness: Round and Truncate Decimal Values</a></li>
	
	    <li><a href="groovy-goodness-integer-divisions.html">Groovy Goodness: Integer Divisions</a></li>
	
	    <li><a href="groovy-goodness-override-getproperty.html">Groovy Goodness: Override getProperty Method with Dynamic Groovy</a></li>
	
	    <li><a href="groovy-goodness-leave-last-comma-in.html">Groovy Goodness: Create Elements in Collection Definition</a></li>
	
	    <li><a href="groovy-goodness-apply-method-to-all.html">Groovy Goodness: Apply Method to All Elements in a List</a></li>
	
	    <li><a href="groovy-goodness-is-object-in-class.html">Groovy Goodness: Is Object in Class Hierarchy</a></li>
	
	    <li><a href="groovy-goodness-make-number-absolute.html">Groovy Goodness: Make a Number Absolute</a></li>
	
	    <li><a href="groovy-goodness-add-shutdownhook.html">Groovy Goodness: Add a ShutdownHook</a></li>
	
	    <li><a href="groovy-goodness-turn-list-into-map.html">Groovy Goodness: Turn a List into a Map</a></li>
	
	    <li><a href="groovy-goodness-check-if-string-is.html">Groovy Goodness: Check if String is a Number</a></li>
	
	    <li><a href="groovy-goodness-normalize-and.html">Groovy Goodness: Normalize and Denormalize Linefeeds and Carriage Returns</a></li>
	
	    <li><a href="groovy-goodness-removing-duplicate.html">Groovy Goodness: Removing Duplicate Elements in a Collection</a></li>
	
	    <li><a href="groovy-goodness-recursively-collect.html">Groovy Goodness: Recursively Collect Elements</a></li>
	
	    <li><a href="groovy-goodness-what-character-are-you.html">Groovy Goodness: What Character Are You?</a></li>
	
	    <li><a href="groovy-goodness-powerful-assert.html">Groovy Goodness: Powerful Assert</a></li>
	
	    <li><a href="groovy-goodness-apply-closure-to-all.html">Groovy Goodness: Apply Closure to All Element in a Collection with collect</a></li>
	
	    <li><a href="groovy-goodness-using-orderby.html">Groovy Goodness: Using the OrderBy Comparator</a></li>
	
	    <li><a href="groovy-goodness-getting-all_25.html">Groovy Goodness: Getting All Subsequences of a List</a></li>
	
	    <li><a href="groovy-goodness-looping-through-each.html">Groovy Goodness: Looping Through Each Permutation in a Collection</a></li>
	
	    <li><a href="groovy-goodness-we-can-handle-truth.html">Groovy Goodness: We Can Handle the Truth</a></li>
	
	    <li><a href="groovy-goodness-implementing-metaclass.html">Groovy Goodness: Implementing MetaClass Methods with Same Name but Different Arguments</a></li>
	
	    <li><a href="groovy-goodness-override-and-use-old_21.html">Groovy Goodness: Override and Use Old Implementation with Dynamic Methods</a></li>
	
	    <li><a href="groovy-goodness-adding-or-overriding.html">Groovy Goodness: Adding or Overriding Methods with ExpandoMetaClass</a></li>
	
	    <li><a href="groovy-goodness-get-properties-from.html">Groovy Goodness: Get Properties from ReleaseInfo</a></li>
	
	    <li><a href="groovy-goodness-getting-groovy-with-dom.html">Groovy Goodness: Getting Groovy with DOM</a></li>
	
	    <li><a href="groovy-goodness-splitting-with-closures.html">Groovy Goodness: Splitting with Closures</a></li>
	
	    <li><a href="groovy-goodness-getting-information.html">Groovy Goodness: Getting Information About Objects</a></li>
	
	    <li><a href="groovy-goodness-groovy-mystic.html">Groovy Goodness: Groovy Mystic Expressions</a></li>
	
	    <li><a href="groovy-goodness-add-static-methods-with.html">Groovy Goodness: Add Static Methods with MetaClass to Classes</a></li>
	
	    <li><a href="groovy-goodness-info-about-closure.html">Groovy Goodness: Info About Closure Parameters</a></li>
	
	    <li><a href="groovy-goodness-getting-sum-of-items-in.html">Groovy Goodness: Getting the Sum of Items in a Collection</a></li>
	
	    <li><a href="groovy-goodness-formatted-strings-with.html">Groovy Goodness: Formatted Strings with sprintf</a></li>
	
	    <li><a href="groovy-goodness-delete-non-empty.html">Groovy Goodness: Delete Non-empty Directory Recursively with File</a></li>
	
	    <li><a href="groovy-goodness-type-conversion-using.html">Groovy Goodness: Type Conversion Using GPathResult When Reading XML</a></li>
	
	    <li><a href="groovy-goodness-semicolons-are-optional.html">Groovy Goodness: Semicolons are Optional</a></li>
	
	    <li><a href="groovy-goodness-counting-items-in-list.html">Groovy Goodness: Counting the Items in a List</a></li>
	
	    <li><a href="groovy-goodness-add-methods-to.html">Groovy Goodness: Add Methods to Interfaces with ExpandoMetaClass</a></li>
	
	    <li><a href="groovy-goodness-know-more-about-class.html">Groovy Goodness: Know More About a Class</a></li>
	
	    <li><a href="groovy-goodness-using-servletcategory.html">Groovy Goodness: Using the ServletCategory</a></li>
	
	    <li><a href="groovy-goodness-implicit-method-docall.html">Groovy Goodness: Implicit Method doCall in Closure</a></li>
	
	    <li><a href="groovy-goodness-automatic-return-value.html">Groovy Goodness: Automatic Return Value Casting</a></li>
	
	    <li><a href="groovy-goodness-serversocket-scripts.html">Groovy Goodness: ServerSocket Scripts</a></li>
	
	    <li><a href="groovy-goodness-use-category-and-get.html">Groovy Goodness: Use a Category and Get a Return Value</a></li>
	
	    <li><a href="groovy-goodness-bit-of-metaclass-dsl.html">Groovy Goodness: A Bit of metaClass DSL</a></li>
	
	    <li><a href="groovy-goodness-closure-arguments.html">Groovy Goodness: Closure Arguments</a></li>
	
	    <li><a href="groovy-goodness-intercept-methods-with.html">Groovy Goodness: Intercept Methods with Interceptors</a></li>
	
	    <li><a href="groovy-goodness-compiled-groovy-script.html">Groovy Goodness: Compiled Groovy Script is a Java Class</a></li>
	
	    <li><a href="groovy-goodness-simple-evaluation-of.html">Groovy Goodness: Simple Evaluation of Groovy Expressions in Java</a></li>
	
	    <li><a href="groovy-goodness-setting-closures.html">Groovy Goodness: Setting a Closure's Delegate</a></li>
	
	    <li><a href="groovy-goodness-create-dynamic-methods.html">Groovy Goodness: Create Dynamic Methods</a></li>
	
	    <li><a href="groovy-goodness-finding-files-with.html">Groovy Goodness: Finding Files with FileNameFinder</a></li>
	
	    <li><a href="groovy-goodness-are-you-in-membership.html">Groovy Goodness: Are You In? (Membership Operator)</a></li>
	
	    <li><a href="groovy-goodness-add-methods-dynamically.html">Groovy Goodness: Add Methods Dynamically to Classes with ExpandoMetaClass</a></li>
	
	    <li><a href="groovy-goodness-running-unit-test.html">Groovy Goodness: Running a Unit Test</a></li>
	
	    <li><a href="groovy-goodness-testing-for-expected.html">Groovy Goodness: Testing for Expected Exceptions</a></li>
	
	    <li><a href="groovy-goodness-running-groovy-scripts.html">Groovy Goodness: Running Groovy Scripts in Java with GroovyClassLoader</a></li>
	
	    <li><a href="groovy-goodness-source-of-groovy-gdk.html">Groovy Goodness: Source of Groovy GDK</a></li>
	
	    <li><a href="groovy-goodness-raising-power-of.html">Groovy Goodness: Raising the Power of Numbers</a></li>
	
	    <li><a href="groovy-goodness-run-code-at-specified.html">Groovy Goodness: Run Code at a Specified Time</a></li>
	
	    <li><a href="groovy-goodness-convert-string-to.html">Groovy Goodness: Convert String to Boolean</a></li>
	
	    <li><a href="groovy-goodness-passing-closures-to.html">Groovy Goodness: Passing Closures to Methods</a></li>
	
	    <li><a href="groovy-goodness-building-gui-with.html">Groovy Goodness: Building a GUI with SwingBuilder</a></li>
	
	    <li><a href="groovy-goodness-define-your-own-type.html">Groovy Goodness: Define Your Own Type Conversion</a></li>
	
	    <li><a href="groovy-goodness-readers-and-writers.html">Groovy Goodness: withReader and withWriter</a></li>
	
	    <li><a href="groovy-goodness-using-def-to-define.html">Groovy Goodness: Using def to Define a Variable</a></li>
	
	    <li><a href="groovy-goodness-complex-keys-in-maps.html">Groovy Goodness: Complex Keys in Maps</a></li>
	
	    <li><a href="groovy-goodness-variable-scope-in.html">Groovy Goodness: Variable Scope in Scripts</a></li>
	
	    <li><a href="groovy-goodness-splitting-strings.html">Groovy Goodness: Splitting Strings</a></li>
	
	    <li><a href="groovy-goodness-base64-encoding.html">Groovy Goodness: Base64 Encoding</a></li>
	
	    <li><a href="groovy-goodness-get-value-from-map-or.html">Groovy Goodness: Get Value from Map or a Default Value</a></li>
	
	    <li><a href="groovy-goodness-remove-parts-of-string.html">Groovy Goodness: Remove Parts of a String</a></li>
	
	    <li><a href="groovy-goodness-working-with-lines-in.html">Groovy Goodness: Working with Lines in Strings</a></li>
	
	    <li><a href="groovy-goodness-access-strings-with.html">Groovy Goodness: Access Strings with Subscript Operator</a></li>
	
	    <li><a href="groovy-goodness-invoke-methods.html">Groovy Goodness: Invoke Methods Dynamically</a></li>
	
	    <li><a href="groovy-goodness-getting-submap-from-map.html">Groovy Goodness: Getting a Submap from a Map</a></li>
	
	    <li><a href="groovy-goodness-immutable-collections.html">Groovy Goodness: Immutable Collections</a></li>
	
	    <li><a href="groovy-goodness-getting-and-setting.html">Groovy Goodness: Getting and Setting Properties</a></li>
	
	    <li><a href="groovy-goodness-groovy-sql-dataset.html">Groovy Goodness: Groovy SQL DataSet</a></li>
	
	    <li><a href="groovy-goodness-groovy-sql.html">Groovy Goodness: Groovy SQL</a></li>
	
	    <li><a href="groovy-goodness-optional-parenthesis.html">Groovy Goodness: Optional Parenthesis</a></li>
	
	    <li><a href="groovy-goodness-static-imports.html">Groovy Goodness: Static Imports</a></li>
	
	    <li><a href="groovy-goodness-using-replaceall.html">Groovy Goodness: Using the replaceAll Methods from String</a></li>
	
	    <li><a href="groovy-goodness-groovlets-as.html">Groovy Goodness: Groovlets as Lightweight Servlets</a></li>
	
	    <li><a href="groovy-goodness-using-template-engines.html">Groovy Goodness: Using the Template Engines</a></li>
	
	    <li><a href="groovy-goodness-bigdecimal.html">Groovy Goodness: BigDecimal</a></li>
	
	    <li><a href="groovy-goodness-getting-tail-of-list.html">Groovy Goodness: Getting the Tail of a List</a></li>
	
	    <li><a href="groovy-goodness-check-if-method-or.html">Groovy Goodness: Check If Method or Property is Available</a></li>
	
	    <li><a href="groovy-goodness-default-imports.html">Groovy Goodness: Default Imports</a></li>
	
	    <li><a href="groovy-goodness-grouping-map-elements.html">Groovy Goodness: Grouping Map Elements</a></li>
	
	    <li><a href="groovy-goodness-using-antbuilder.html">Groovy Goodness: Using AntBuilder</a></li>
	
	    <li><a href="groovy-goodness-reading-xml.html">Groovy Goodness: Reading XML</a></li>
	
	    <li><a href="groovy-goodness-finding-data-in.html">Groovy Goodness: Finding Data in Collections</a></li>
	
	    <li><a href="groovy-goodness-using-groovy-on-command.html">Groovy Goodness: Using Groovy on the Command-Line</a></li>
	
	    <li><a href="groovy-goodness-executing-string-or.html">Groovy Goodness: Executing String or List</a></li>
	
	    <li><a href="groovy-goodness-using-configslurper.html">Groovy Goodness: Using ConfigSlurper with Configuration Scripts</a></li>
	
	    <li><a href="groovy-goodness-reading-url-content.html">Groovy Goodness: Reading URL Content</a></li>
	
	    <li><a href="groovy-goodness-creating-xml-with.html">Groovy Goodness: Creating XML with MarkupBuilder</a></li>
	
	    <li><a href="groovy-goodness-groovycollections.html">Groovy Goodness: GroovyCollections Utility Class</a></li>
	
	    <li><a href="groovy-goodness-join-elements-to-string.html">Groovy Goodness: Join Elements to a String</a></li>
	
	    <li><a href="groovy-goodness-mixin-functionality-to.html">Groovy Goodness: Mixin Functionality to Classes</a></li>
	
	    <li><a href="groovy-goodness-expando-as-dynamic-bean.html">Groovy Goodness: Expando as Dynamic Bean</a></li>
	
	    <li><a href="groovy-goodness-create-singleton-class.html">Groovy Goodness: Create a Singleton Class</a></li>
	
	    <li><a href="groovy-goodness-newify-to-create-new.html">Groovy Goodness: Newify to Create New Instances</a></li>
	
	    <li><a href="groovy-goodness-use-categories-to-add.html">Groovy Goodness: Use Categories to Add Functionality to Classes</a></li>
	
	    <li><a href="groovy-goodness-building-object-graphs.html">Groovy Goodness: Building Object Graphs</a></li>
	
	    <li><a href="groovy-goodness-observable-map-and-list.html">Groovy Goodness: Observable Map and List</a></li>
	
	    <li><a href="groovy-goodness-grab-that-dependency.html">Groovy Goodness: Grab That Dependency</a></li>
	
	    <li><a href="groovy-goodness-matchers-for-regular.html">Groovy Goodness: Matchers for Regular Expressions</a></li>
	
	    <li><a href="groovy-goodness-using-regular.html">Groovy Goodness: Using Regular Expression Pattern Class</a></li>
	
	    <li><a href="groovy-goodness-using-groovymbeans-for.html">Groovy Goodness: Using GroovyMBeans for Easy JMX</a></li>
	
	    <li><a href="groovy-goodness-multimethods-or.html">Groovy Goodness: MultiMethods or Multiple Dispatch</a></li>
	
	    <li><a href="groovy-goodness-parsing-commandline.html">Groovy Goodness: Parsing Commandline Arguments with CliBuilder</a></li>
	
	    <li><a href="groovy-goodness-padding-strings.html">Groovy Goodness: Padding Strings</a></li>
	
	    <li><a href="groovy-goodness-working-with-arrays.html">Groovy Goodness: Working with Arrays</a></li>
	
	    <li><a href="groovy-goodness-lazy-initialization-of.html">Groovy Goodness: Lazy Initialization of Properties</a></li>
	
	    <li><a href="groovy-goodness-making-class-immutable.html">Groovy Goodness: Making a Class Immutable</a></li>
	
	    <li><a href="groovy-goodness-looping-in-different.html">Groovy Goodness: Looping in Different Ways</a></li>
	
	    <li><a href="groovy-goodness-check-for-object.html">Groovy Goodness: Check for Object Equality</a></li>
	
	    <li><a href="groovy-goodness-named-parameters-are.html">Groovy Goodness: Named Parameters are Converted to Map</a></li>
	
	    <li><a href="groovy-goodness-exception-handling.html">Groovy Goodness: Exception Handling</a></li>
	
	    <li><a href="groovy-goodness-parameters-with-default.html">Groovy Goodness: Parameters with Default Values</a></li>
	
	    <li><a href="groovy-goodness-optional-return-keyword.html">Groovy Goodness: Optional return Keyword</a></li>
	
	    <li><a href="groovy-goodness-using-groupby-method.html">Groovy Goodness: Using the GroupBy Method</a></li>
	
	    <li><a href="groovy-goodness-as-keyword.html">Groovy Goodness: the as Keyword</a></li>
	
	    <li><a href="groovy-goodness-using-lists-and-maps-as.html">Groovy Goodness: Using Lists and Maps As Constructors</a></li>
	
	    <li><a href="groovy-goodness-add-some-curry-for.html">Groovy Goodness: Add Some Curry for Taste</a></li>
	
	    <li><a href="groovy-goodness-using-inject-method.html">Groovy Goodness: Using the Inject Method</a></li>
	
	    <li><a href="groovy-goodness-with-method.html">Groovy Goodness: the With Method</a></li>
	
	    <li><a href="groovy-goodness-keep-your-values-in.html">Groovy Goodness: Keep Your Values in Ranges</a></li>
	
	    <li><a href="groovy-goodness-spread-operator.html">Groovy Goodness: the Spread Operator</a></li>
	
	    <li><a href="groovy-goodness-date-and-time-durations.html">Groovy Goodness: Date and Time Durations and the TimeCategory</a></li>
	
	    <li><a href="groovy-goodness-multiple-assignments.html">Groovy Goodness: Multiple Assignments</a></li>
	
	    <li><a href="groovy-goodness-working-with-dates.html">Groovy Goodness: Working with Dates</a></li>
	
	    <li><a href="groovy-goodness-spread-dot-operator.html">Groovy Goodness: The Spread-Dot Operator</a></li>
	
	    <li><a href="groovy-goodness-delegate-to-simplify.html">Groovy Goodness: Delegate to Simplify Code</a></li>
	
	    <li><a href="groovy-goodness-working-with-files.html">Groovy Goodness: Working with Files</a></li>
	
	    <li><a href="groovy-goodness-spaceship-operator.html">Groovy Goodness: the Spaceship Operator</a></li>
	
	    <li><a href="groovy-goodness-grep-method.html">Groovy Goodness: the Grep Method</a></li>
	
	    <li><a href="groovy-goodness-switch-statement.html">Groovy Goodness: the Switch Statement</a></li>
	
	    <li><a href="groovy-goodness-tell-groovy-truth.html">Groovy Goodness: Tell the Groovy Truth</a></li>
	
	    <li><a href="groovy-goodness-string-strings-strings.html">Groovy Goodness: 'String', "Strings", /Strings/ and GStrings</a></li>
	
	    <li><a href="groovy-goodness-turn-methods-into.html">Groovy Goodness: Turn Methods into Closures</a></li>
	
	    <li><a href="groovy-goodness-bound-and-constrained.html">Groovy Goodness: Bound and Constrained Properties in GroovyBeans</a></li>
	
	    <li><a href="groovy-goodness-groovybeans-simpler.html">Groovy Goodness: GroovyBeans the Simpler JavaBeans</a></li>
	
	    <li><a href="groovy-goodness-safe-navigation-to.html">Groovy Goodness: Safe Navigation to Avoid NullPointerException</a></li>
	
	    <li><a href="groovy-goodness-elvis-operator.html">Groovy Goodness: the Elvis Operator ?:</a></li>
	
	    <li><a href="groovy-goodness-use-map-as-interface.html">Groovy Goodness: Use a Map as Interface Implementation</a></li>
	
	    <li><a href="groovy-goodness-stringmultiply.html">Groovy Goodness: String.multiply()</a></li>
	
	</ul>
</div>

</body>
</html>